//
//  NSDictionary+Extensions.h
//  HYP
//
//  Created by yaofangyys on 14-7-30.
//  Copyright (c) 2014年 Guangdong No.1 Pharmacy Chain Co., Ltd. All rights reserved.
//

#import <Foundation/Foundation.h>

@interface NSDictionary (Extensions)

// Deep copy
- (id)mutableDeepCopy;

// Get methods
- (NSString *)stringForKey:(NSString *)aKey;
- (NSArray *)arrayForKey:(NSString *)aKey;
- (NSDictionary *)dictionaryForKey:(NSString *)aKey;
- (NSInteger)integerForKey:(NSString *)aKey;
- (int)intForKey:(NSString *)aKey;
- (float)floatForKey:(NSString *)aKey;
- (BOOL)boolForKey:(NSString *)aKey;
- (double)doubleForKey:(NSString *)aKey;
- (NSNumber *)numberForKey:(NSString *)aKey;
- (NSArray *)stringArrayForKey:(NSString *)aKey;
- (NSData *)dataForKey:(NSString *)aKey;
- (NSDate *)dateForKey:(NSString *)aKey;
- (id)objForKey:(NSString *)aKey;

- (NSMutableArray *)mutableArrayForKey:(NSString *)aKey;

- (NSMutableDictionary *)mutableDictionaryForKey:(NSString *)aKey;

//
- (BOOL)hasValueForKey:(NSString *)aKey;

@end

@interface NSMutableDictionary (NSMutableDictionary_Extensions)

// Set methods
- (void)setInteger:(NSInteger)value forKey:(NSString *)aKey;
- (void)setFloat:(float)value forKey:(NSString *)aKey;
- (void)setDouble:(double)value forKey:(NSString *)aKey;
- (void)setBool:(BOOL)value forKey:(NSString *)aKey;
- (void)setNumber:(NSNumber *)value forKey:(NSString *)aKey;
- (void)setString:(NSString *)value forKey:(NSString *)aKey;
- (void)setArray:(NSArray *)value forKey:(NSString *)aKey;
- (void)setDictionary:(NSDictionary *)value forKey:(NSString *)aKey;
- (void)setDate:(NSDate *)value forKey:(NSString *)aKey;
- (void)setData:(NSData *)value forKey:(NSString *)aKey;
- (void)setObj:(id)value forKey:(NSString *)aKey;

@end
